package dao;

import modle.User;

import java.util.ArrayList;

/**
 * @author DELL
 */
public interface UserDao {

    /**
     * 删除单个用户
     *
     * @param userID 用户ID用于查找用户
     * @return 删除成功则返回真
     */
    boolean delUser(String userID);

    /**
     * 添加用户
     *
     * @param user 用户实体
     * @return 插入的用户数量
     */
    int insert(User user);

    /**
     * 修改用户信息
     *
     * @param user 传入原用户实体
     * @return 是否成功修改 成功则返回true
     */
    Boolean update(User user);

    /**
     * 通过userID来搜索用户
     *
     * @param userID
     * @return 用户实体
     */
    User getUser(String userID);

    /**
     * 通过name,需要的page数在数据库中搜索相关用户
     *
     * @param keywords 检索关键字
     * @param count    每一页显示的用户数量
     * @param page     需要第几页的数据
     * @return
     */
    ArrayList<User> getUserList(String keywords, int page, int count);

    /**
     * 通过页数获得用户信息
     *
     * @param count 每一页显示的用户数量
     * @param page  需要第几页的数据
     * @return 用户列表
     */
    ArrayList<User> getUserList(int page, int count);

    /**
     * 获得用户数量,在实现中实际调用了 getAllUser 方法
     * result set 中的数据无法取出，留到后期修改。否则使用时该方法运行时间将较大。
     * 已修改
     *
     * @return 用户数量
     */
    int getNumOfUsers();

    /**
     * 通过关键字检索符合条件的用户数量
     *
     * @param keywords 检索关键字
     * @return 用户数量
     */
    int getNumOfUsers(String keywords);
}
